[Amazon Lex] Amazon Lexが日本語対応となったので、Amazon Connectから使用して居酒屋の電話予約をボット化してみました
1 はじめに
CX事業本部の平内(SIN)です。
いよいよ、Amazon Lex(以下、Lex)が日本語で利用できるようになりました。
Amazon Lex が日本語に対応。東京リージョンでお使いいただけます
昨日、テンプレートで試してみたのですが・・・
今日は、簡単なボットを作成して、Amazon Connect(以下、Connect)から利用してみました。
2 想定
Connectと連携するサンプルとして、居酒屋クラメソ(注:実際には、存在しません)の電話に自動応答を組み込む事をイメージしてみました。
下記は、お店に、予約の電話が入った場面です。店員が時間や人数を聞き取っています。しかし、仕事中に手を止めて電話に応答する作業は、少しコストが掛かるものです、そこで、できれば、予約は自動化したというニーズが有るとします。
しかし、お店に掛かってくる電話は、予約とは限りません。
そこで、お店の応答を、一旦、Connectの自動応答で受け、予約の場合は、Lexのボットで処理し、それ以外の場合に、お店の電話を鳴らす事にしました。(※今回、Lambdaでの予約処理は省略しています)
3 Lex
(1) Intent
Lexは、Custom botから作成してます。
そして、インテントを1つ(ReservationIntent)だけ作成しました。
(2) Sample utterances
このインテントへ導入する発話は、Sample utterancesで指定します。
(3) Slots
スロットは、以下の3つを定義しました。
- ReservationDate(予約の日付)
- ReservationTime(予約の時間)
- NumberOfReservation(人数)
Slot typeは、全部、組み込みのものです。
(4) Confirmation prompt
スロットが全て埋まった段階で、確認するプロンプトを有効にしています。
承知しました。{ReservationDate} に {ReservationTime} から {NumberOfReservation} 人で予約お取りします。よろしいですか?
(5) Error handling
Error handlingは、インテントに導入する適切な発話が無かった時の応答です。
ここでは、チェックを外して、リトライしない設定としています。これにより、Sample utterancesで想定された発話にヒットしなかった場合、「只今、お繋ぎします」と発話して、Bot自体は、完了させています。
(6) Fulfillment
Fulfillmentで、AWS Lambda functionを選択することで、Lexで取得したスロット値を使用して処理が進められます。
予約処理の本体は、ここで指定したLambdaで行う想定ですが、今回、ここ、省略させて頂いています。
(7) 動作確認
コンソールから、動作確認している様子です。
4 Connect
(1) Lex追加
ConnectからLexを利用するためには、インスタンスに追加が必要です。
(2) 問い合わせフロー
作成した問い合わせフローです。
顧客の入力を取得するというブロックで、予約かどうかの分岐を行い、予約以外の場合は、お店の電話に転送するようになっています。
顧客の入力を取得するブロックで設定した内容です。
Amazon Laxタブで作成したLexと、インテントを指定しています。
ここでは、エイリアスを$LATESTとしていますが、実際に運用する場合は、適切なアリアスを作成することが推奨されています。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/amazon-lex.html
5 動作確認
動作確認しているようすです。
着信した電話は、自動応答でアナウンスを返し、顧客の話す内容によって、予約とその他に分岐しています。 また、予約の場合は、ボットが応答を完了するため、お店の電話への転送はありません。
6 最後に
今回は、日本語で利用可能なったLexをConnectから利用してみました。
作成したボットは、「予約」というインテントしか実装されていませんが、このインテントを増やすことで、自動で処理できる範囲が増やせるかも知れません。
お試しということで、しっかりしたエラーハンドリングなど、全くできていませんが、Lexには、バリデーションにLambdaを利用する事ができますので、きめ細かく処理を進める事で、それなりに、心地よいUXを作成することも可能だと思います。